package com.ruoyi.system.service.impl;

import java.util.List;
import java.util.UUID;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.SysFonds;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysFondsMapper;
import com.ruoyi.system.service.ISysFondsService;

/**
 * 全宗信息Service业务层处理
 *
 * @author ruoyi_ln
 * @date 2022-02-12
 */
@Service
public class SysFondsServiceImpl implements ISysFondsService
{
    @Autowired
    private SysFondsMapper sysFondsMapper;

    @Autowired
    private ISysDeptService deptService;

    @Autowired
    private ISysUserService userService;

    /**
     * 查询全宗信息
     *
     * @param recNo 全宗信息ID
     * @return 全宗信息
     */
    @Override
    public SysFonds selectSysFondsById(String recNo)
    {
        return sysFondsMapper.selectSysFondsById(recNo);
    }

    /**
     * 查询全宗信息列表
     *
     * @param sysFonds 全宗信息
     * @return 全宗信息
     */
    @Override
    public List<SysFonds> selectSysFondsList(SysFonds sysFonds)
    {
        return sysFondsMapper.selectSysFondsList(sysFonds);
    }

    /**
     * 新增全宗信息
     *
     * @param sysFonds 全宗信息
     * @return 结果
     */
    @Override
    public int insertSysFonds(SysFonds sysFonds)
    {
        SysUser sysUser = userService.selectUserByUserName(SecurityUtils.getUsername());
        SysDept sysDept = deptService.selectDeptById(Long.parseLong(sysUser.getDeptId()));
        sysFonds.setCreateBy(sysDept.getDeptName());
        sysFonds.setCreateTime(DateUtils.getNowDate());
        UUID uuid=UUID.randomUUID();
        String[] idd=uuid.toString().split("-");
        String id=idd[0]+idd[1]+idd[2]+idd[3]+ idd[4];
        sysFonds.setRecNo(id);
        return sysFondsMapper.insertSysFonds(sysFonds);
    }

    /**
     * 修改全宗信息
     *
     * @param sysFonds 全宗信息
     * @return 结果
     */
    @Override
    public int updateSysFonds(SysFonds sysFonds)
    {
        SysUser sysUser = userService.selectUserByUserName(SecurityUtils.getUsername());
        SysDept sysDept = deptService.selectDeptById(Long.parseLong(sysUser.getDeptId()));
        sysFonds.setUpdateBy(sysDept.getDeptName());
        sysFonds.setUpdateTime(DateUtils.getNowDate());
        return sysFondsMapper.updateSysFonds(sysFonds);
    }

    /**
     * 批量删除全宗信息
     *
     * @param recNos 需要删除的全宗信息ID
     * @return 结果
     */
    @Override
    public int deleteSysFondsByIds(String[] recNos)
    {
        int i=0;
        for (String recNo : recNos) {
            SysFonds sysFonds = new SysFonds();
            sysFonds.setRecNo(recNo);
            SysUser sysUser = userService.selectUserByUserName(SecurityUtils.getUsername());
            SysDept sysDept = deptService.selectDeptById(Long.parseLong(sysUser.getDeptId()));
            sysFonds.setUpdateBy(sysDept.getDeptName());
            sysFonds.setUpdateTime(DateUtils.getNowDate());
            sysFondsMapper.deleteSysFondsById(sysFonds);
            i++;
        }
        return i;
    }

    /**
     * 删除全宗信息信息
     *
     * @param sysFonds 全宗信息ID
     * @return 结果
     */
    @Override
    public int deleteSysFondsById(SysFonds sysFonds)
    {
        SysUser sysUser = userService.selectUserByUserName(SecurityUtils.getUsername());
        SysDept sysDept = deptService.selectDeptById(Long.parseLong(sysUser.getDeptId()));
        sysFonds.setUpdateBy(sysDept.getDeptName());
        sysFonds.setUpdateTime(DateUtils.getNowDate());
        return sysFondsMapper.deleteSysFondsById(sysFonds);
    }
}
